config BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS
	bool
	# see src/shared/architecture.h
	default y if BR2_arm || BR2_armeb || BR2_i386 || BR2_mips || \
		BR2_mipsel || BR2_powerpc || BR2_powerpc64 || \
		BR2_powerpc64le || BR2_sh4 || BR2_sh4eb || \
		BR2_sh4a || BR2_sh4aeb || BR2_sparc || BR2_x86_64 || \
		BR2_aarch64 || BR2_m68k

menuconfig BR2_PACKAGE_SYSTEMD
	bool "systemd"
	depends on BR2_INIT_SYSTEMD
	depends on BR2_USE_WCHAR # util-linux
	depends on !BR2_STATIC_LIBS # kmod
	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus
	depends on BR2_USE_MMU # dbus
	select BR2_PACKAGE_HAS_UDEV
	select BR2_PACKAGE_DBUS # runtime dependency only
	select BR2_PACKAGE_LIBCAP
	select BR2_PACKAGE_UTIL_LINUX
	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
	select BR2_PACKAGE_UTIL_LINUX_BINARIES
	select BR2_PACKAGE_UTIL_LINUX_MOUNT
	select BR2_PACKAGE_UTIL_LINUX_NOLOGIN
	select BR2_PACKAGE_KMOD
	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # kmod-tools
	select BR2_PACKAGE_KMOD_TOOLS
	help
	  systemd is a system and service manager for Linux, compatible with
	  SysV and LSB init scripts. systemd provides aggressive parallelization
	  capabilities, uses socket and D-Bus activation for starting services,
	  offers on-demand starting of daemons, keeps track of processes using
	  Linux cgroups, supports snapshotting and restoring of the system
	  state, maintains mount and automount points and implements an
	  elaborate transactional dependency-based service control logic.
	  It can work as a drop-in replacement for sysvinit.

	  Systemd requires a Linux kernel >= 3.0 with the following options
	  enabled:

	  - CONFIG_CGROUPS
	  - CONFIG_INOTIFY_USER
	  - CONFIG_FHANDLE
	  - CONFIG_AUTOFS4_FS
	  - CONFIG_TMPFS_POSIX_ACL
	  - CONFIG_TMPFS_XATTR

	  These options will be automatically enabled by Buildroot if
	  it is responsible for building the kernel. Otherwise, if you
	  are building your kernel outside of Buildroot, make sure
	  these options are enabled.

	  Systemd also provides udev, the userspace device daemon.

	  The selection of other packages will enable some features:

	  - acl package will add support for multi-seat.
	  - xz and/or l4 packages will add compression support in
	    journal and coredump.
	  - libcurl package will add support for systemd-journal-upload.
	  - libgcrypt package will add support for journal sealing and
	    DNSSEC verification in resolved.

	  http://freedesktop.org/wiki/Software/systemd

if BR2_PACKAGE_SYSTEMD

config BR2_PACKAGE_PROVIDES_UDEV
	default "systemd"

config BR2_PACKAGE_SYSTEMD_JOURNAL_GATEWAY
	bool "HTTP server for journal events"
	select BR2_PACKAGE_LIBMICROHTTPD
	help
	  systemd-journal-gatewayd serves journal events over the
	  network. Clients must connect using HTTP. The server
	  listens on port 19531 by default.

	  http://www.freedesktop.org/software/systemd/man/systemd-journal-gatewayd.service.html

config BR2_PACKAGE_SYSTEMD_BACKLIGHT
	bool "enable backlight support"
	help
	  systemd-backlight is a service that restores the display
	  backlight brightness at early boot and saves it at shutdown.

	  http://www.freedesktop.org/software/systemd/man/systemd-backlight@.service.html

config BR2_PACKAGE_SYSTEMD_BINFMT
	bool "enable binfmt tool"
	help
	  systemd-binfmt is an early boot service that registers
	  additional binary formats for executables in the kernel.

	  http://www.freedesktop.org/software/systemd/man/systemd-binfmt.service.html

config BR2_PACKAGE_SYSTEMD_COREDUMP
	bool "enable coredump hook"
	help
	  systemd-coredump can be used as a helper binary by the
	  kernel when a user space program receives a fatal signal and
	  dumps core.

	  http://www.freedesktop.org/software/systemd/man/systemd-coredump.html

config BR2_PACKAGE_SYSTEMD_FIRSTBOOT
	bool "enable firstboot support"
	default y
	help
	  systemd-firstboot initializes the most basic system settings
	  interactively on the first boot.

	  http://www.freedesktop.org/software/systemd/man/systemd-firstboot.html

config BR2_PACKAGE_SYSTEMD_HIBERNATE
	bool "enable hibernation support"
	help
	  When this features is enabled, additional tools and services
	  are built to support suspending and resuming the system.

	  http://www.freedesktop.org/software/systemd/man/systemd-sleep.html

config BR2_PACKAGE_SYSTEMD_HOSTNAMED
	bool "enable hostname daemon"
	default y
	help
	  systemd-hostnamed is a system service that may be used as a
	  mechanism to change the system's hostname.

	  http://www.freedesktop.org/software/systemd/man/systemd-hostnamed.service.html

config BR2_PACKAGE_SYSTEMD_HWDB
	bool "enable hwdb installation"
	default y
	help
	  Enables hardware database installation to /usr/lib/udev/hwdb.d

	  Disabling this option improves first boot time (or every boot
	  time in case of initramfs images) and saves several MB space.

	  https://www.freedesktop.org/software/systemd/man/hwdb.html

config BR2_PACKAGE_SYSTEMD_IMPORTD
	bool "enable import daemon"
	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt
	select BR2_PACKAGE_LIBCURL
	select BR2_PACKAGE_LIBGCRYPT
	select BR2_PACKAGE_BZIP2
	select BR2_PACKAGE_LZ4
	select BR2_PACKAGE_XZ
	select BR2_PACKAGE_ZLIB
	help
	  systemd-importd is a system service that manages virtual
	  machine and container images for systemd-machined and
	  machinectl.

	  http://www.freedesktop.org/software/systemd/man/machinectl.html#Image%20Transfer%20Commands

config BR2_PACKAGE_SYSTEMD_KDBUS
	bool "enable kdbus support"
	help
	  Enable kdbus support for Systemd.

config BR2_PACKAGE_SYSTEMD_LOCALED
	bool "enable locale daemon"
	help
	  systemd-localed is a system service that may be used as
	  mechanism to change the system locale settings, as well as
	  the console key mapping and default X11 key mapping.

	  http://www.freedesktop.org/software/systemd/man/systemd-localed.service.html

config BR2_PACKAGE_SYSTEMD_LOGIND
	bool "enable login daemon"
	help
	  systemd-logind is a system service that manages user logins.

	  http://www.freedesktop.org/software/systemd/man/systemd-logind.service.html

config BR2_PACKAGE_SYSTEMD_MACHINED
	bool "enable machine daemon"
	help
	  systemd-machined is a system service that keeps track of
	  virtual machines and containers, and processes belonging to
	  them.

	  http://www.freedesktop.org/software/systemd/man/systemd-machined.service.html

config BR2_PACKAGE_SYSTEMD_MYHOSTNAME
	bool "enable myhostname NSS plugin"
	default y
	help
	  nss-myhostname is a plug-in module for the GNU Name Service
	  Switch (NSS) functionality of the GNU C Library (glibc),
	  primarily providing hostname resolution for the locally
	  configured system hostname as returned by gethostname(2).

	  http://www.freedesktop.org/software/systemd/man/nss-myhostname.html

config BR2_PACKAGE_SYSTEMD_NETWORKD
	bool "enable network manager"
	default y
	help
	  systemd-networkd is a system service that manages networks.
	  It detects and configures network devices as they appear, as well as
	  creating virtual network devices.

	  This simple network configuration solution is an alternative to
	  dhcpcd or ISC dhcp.

	  http://www.freedesktop.org/software/systemd/man/systemd-networkd.html

config BR2_PACKAGE_SYSTEMD_POLKIT
	bool "enable polkit support"
	select BR2_PACKAGE_POLKIT
	help
	  If enabled, systemd is built with polkit support and policy
	  files for its services are generated and installed. It is
	  useful for allowing unprivileged processes to speak to
	  systemd's many privileged processes.

	  http://wiki.freedesktop.org/www/Software/polkit/

config BR2_PACKAGE_SYSTEMD_QUOTACHECK
	bool "enable quotacheck tools"
	help
	  systemd-quotacheck is a service responsible for file system
	  quota checks. It is run once at boot after all necessary
	  file systems are mounted. It is pulled in only if at least
	  one file system has quotas enabled.

	  http://www.freedesktop.org/software/systemd/man/systemd-quotacheck.service.html

config BR2_PACKAGE_SYSTEMD_RANDOMSEED
	bool "enable random-seed support"
	help
	  systemd-random-seed is a service that restores the random
	  seed of the system at early boot and saves it at
	  shutdown. Saving/restoring the random seed across boots
	  increases the amount of available entropy early at boot.

	  http://www.freedesktop.org/software/systemd/man/systemd-random-seed.service.html

config BR2_PACKAGE_SYSTEMD_RESOLVED
	bool "enable resolve daemon"
	default y
	help
	  systemd-resolved is a system service that provides network
	  name resolution to local applications. It implements a
	  caching and validating DNS/DNSSEC stub resolver, as well as
	  an LLMNR resolver and responder.

	  http://www.freedesktop.org/software/systemd/man/systemd-resolved.html

config BR2_PACKAGE_SYSTEMD_RFKILL
	bool "enable rfkill tools"
	help
	  systemd-rfkill is a service that restores the RF kill switch
	  state at early boot and saves it at shutdown.

	  http://www.freedesktop.org/software/systemd/man/systemd-rfkill@.service.html

config BR2_PACKAGE_SYSTEMD_SMACK_SUPPORT
	bool "enable SMACK support"
	select BR2_PACKAGE_ATTR
	select BR2_PACKAGE_SMACK
	help
	  Enable support for SMACK, the Simple Mandatory Access Control
	  Kernel, a minimal approach to Access Control implemented as a kernel
	  LSM.

	  This feature requires a kernel >= 3.8.

	  When this feature is enabled, Systemd mounts smackfs and manages
	  security labels for sockets.

config BR2_PACKAGE_SYSTEMD_SYSUSERS
	bool "enable sysusers support"
	help
	  systemd-sysusers creates system users and groups, based on
	  the file format and location specified in sysusers.d(5).

	  http://www.freedesktop.org/software/systemd/man/systemd-sysusers.html

config BR2_PACKAGE_SYSTEMD_TIMEDATED
	bool "enable timedate daemon"
	default y
	help
	  systemd-timedated is a system service that may be used as a
	  mechanism to change the system clock and timezone, as well
	  as to enable/disable NTP time synchronization.

	  http://www.freedesktop.org/software/systemd/man/systemd-timedated.service.html

config BR2_PACKAGE_SYSTEMD_TIMESYNCD
	bool "enable timesync daemon"
	default y
	help
	  systemd-timesyncd is a service that may be used to synchronize the
	  local system clock with a Network Time Protocol server.

	  This simple NTP solution is an alternative to sntp/ntpd from the ntp
	  package.

	  http://www.freedesktop.org/software/systemd/man/systemd-timesyncd.html

config BR2_PACKAGE_SYSTEMD_TMPFILES
	bool "enable tmpfiles support"
	default y
	help
	  systemd-tmpfiles creates, deletes, and cleans up volatile
	  and temporary files and directories, based on the
	  configuration file format and location specified in
	  tmpfiles.d(5).

	  http://www.freedesktop.org/software/systemd/man/systemd-tmpfiles.html

config BR2_PACKAGE_SYSTEMD_VCONSOLE
	bool "enable vconsole tool"
	help
	  systemd-vconsole-setup is an early boot service that
	  configures the virtual console font and console keymap.

	  http://www.freedesktop.org/software/systemd/man/systemd-vconsole-setup.service.html

endif
